var jwt = require("jsonwebtoken");

var secret = "wuhan2004-daydayup";

// var data = {
//     username:"zuozuomu",
//     password:"abc123",
// }

var createToken = function(data){
    return jwt.sign(data,secret,{expiresIn:"2h"});//失效时间
}

exports.createToken = createToken;

//token 解密
var decodeToken = function(token){
    return new Promise(function(resolve,reject){
        jwt.verify(token,secret,(err,data)=>{
            if(err){
                reject(err);
            }else{
                resolve(data); //解密后的明文
            }
        })
    })
}
//检测token是否有效
//1.token 不存在
//2. token 过期
//3. token 不正确
var checkToken = function(req,res,callback){
    var token = req.headers.token;//接收前端发送过来的token
    if(token){
        decodeToken(token)
        .then(data=>{
            
            callback(data);//解密成功的回调
        })
        .catch(err=>{
            console.log(err);
            res.json({
                code:3200,
                msg:"token无效，请立即登录",
                err,
                type:0,
            })
        })
    }else{
        res.json({
            code:3200,
            msg:"token不存在,请立即登录",
            type:0,
        })
    }
}

exports.checkToken = checkToken;